package com.ruijiang.mapper.UserServiceMapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruijiang.dto.insert.UserInsertDto;
import com.ruijiang.dto.page.UserPageDto;
import com.ruijiang.entity.User;
import com.ruijiang.vo.user.UserGetByIdVO;
import com.ruijiang.vo.user.UserSearchVO;
import com.ruijiang.vo.user.UserTaskCountVO;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

import java.util.List;

@Mapper
public interface UserMapper extends BaseMapper<User> {

    /**
     * 获取人员列表
     * @param userPageDto
     * @return
     */
    List<UserSearchVO> getList(UserPageDto userPageDto);


    /**
     * 新增人员
     * @param userInsertDto
     */
    void insertUser(UserInsertDto userInsertDto);

    /**
     * 删除人员
     * @param id
     */
    @Delete("delete from lkd.tb_user where id = #{id}")
    void deleteUser(Integer id);

    /**
     * 修改人员
     * @param id
     * @param userInsertDto
     */
    void updateUser(Integer id, UserInsertDto userInsertDto);

    /**
     * 根据id查询人员
     * @param id
     * @return
     */

    @Select("select u.*,r.role_name from tb_user u left join tb_role r on u.role_id = r.role_id where id = #{id}")
    UserGetByIdVO getById(Integer id);


    /**
     * 根据售货机获取运营人员
     * @param innerCode
     * @return
     */
    List<User> getOperatorList(String innerCode);


    List<UserTaskCountVO> getUserWorkPage(UserPageDto dto);

    List<User> getRepairerList(String innerCode);
}
